(function($){



	//定义jquery方法扩展的combobox的方法
	$.fn.combobox = function(options,param){

		if(typeof options === 'String'){
			return $.fn.combobox.method[options](this,param);
		}

		//扩张调用的时传递过来的参数
		options = $.$.extend({}, $.fn.combobox.defaults, options || {});

		//添加默认值
		var target = $(this);
		target.attr("valueField",options.valueField).attr('textField',options.textField);
		target.empty();
		var option = $('<option></option>');
		option.attr('value','');
		option.text(options.placehodler);
		target.append(option)

		//判断用户传递过来的参数中是否包含data数据
		if(options.data){
			init(target,options.data);
		}else{
			options.onBeforeLoad.call(target,options.param);
			if(!options.url){return}
			$.getJSON(options.url,options.param,function(data){
				init(target,data);
			})
		}


		//初始化数据
		function init(target,data){
			$.each(data,function(i,item){
				var option = $('<option></option>');
				option.attr('value', item[options.valueField]);
                option.text(item[options.textField]);
                target.append(options);
			});
			options.onLoadSuccess.call(target)
		}

		target.unbind("change");
		target.on("change",function(e){
			if(options.onChange){
				return options.onChange(target.val())
			}
		})
	}


	//如果传递过来的是字符串代表的是调用方法
	$.fn.combobx.method = {
		getValue:function(jq){
			return jq.val();
		},
		setValue:function(jq,param){
			ja.val(param);
		},
		load:function(jq,url){
			$.getJSON(url, function (data) {
                jq.empty();
                var option = $('<option></option>');
                option.attr('value', '');
                option.text('请选择');
                jq.append(option);
                $.each(data, function (i, item) {
                    var option = $('<option></option>');
                    option.attr('value', item[jq.attr('valuefield')]);
                    option.text(item[jq.attr('textfield')]);
                    jq.append(option);
                });
            });
		}	
	}
	
	//默认的参数
	$.fn.combobox.defaults = {
		url:null,
		param:null,
		data:null,
		valueField:'value',
		textField:'text',
		placehodler:'请选择'，
		onBeforeLoad:function(param){},
		onLoadSuccess:function(){},
		onChange:function(value){}
	}
})(jQuery);